package piconode.factory.objectivefunctions;

/**
 * objective function class for general purpose. Used in the piconode ESN
 * factory implementation.
 * 
 * @author nicolas.bredeche(at)lri.Fr
 * 
 */
abstract public class ObjectiveFunction {

	/**
	 * gives f(x1...xn)
	 * 
	 * @param __i
	 *            iteration (may be any value if non-temporal function)
	 * @return
	 */
	abstract public double[] getOutputValue(int __i);

	/**
	 * gives x1...xn. May return an empty array (e.g. f(t))
	 * 
	 * @param __i
	 *            iteration (may be any value if non-temporal function)
	 * @return
	 */
	abstract public double[] getInputValue(int __i);

}
